-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: MPI shared memory #51
base: unstable
Are you sure you want to change the base?
Conversation
322fa64
to
6c8e02d
Compare
2cdbb07
to
eac10ed
Compare
Open questions from meeting Tue Feb 25, 11:00 EST
Idea for API: blk_t {
char * ptr;
size_t s;
window* win;
}
handle_heap {
blk_t blk;
requires ...
window *win() { return blk.win; }
}
shared_array {
handle_heap sto;
void fence() { sto.win->fence(); }
} |
Currently The template <typename T, Allocator A = mallocator<>>
struct handle_heap { but template <typename T, AddressSpace AdrSp = Host>
struct handle_borrowed {
private:
using T0 = std::remove_const_t<T>;
handle_heap<T0> const *_parent = nullptr;
/* ... omitted ... */
template <Handle H>
requires(address_space == H::address_space and (std::is_const_v<value_type> or !std::is_const_v<typename H::value_type>)
and std::is_same_v<const value_type, const typename H::value_type>)
handle_borrowed(H const &h, long offset = 0) noexcept : _data(h.data() + offset) {
if constexpr (std::is_same_v<H, handle_heap<T0>>) _parent = &h;
} This is a bit problematic, because it means that creating a Thus getting the |
No description provided.